home *** CD-ROM | disk | FTP | other *** search
/ Alles Voor Internet / Tout Pour Internet / alles voor internet.iso / MacInternet™ / Telnet / Terminal 2.2 / Project / Sources / ZOptions.c < prev   
Text File  |  1992-01-17  |  3KB  |  114 lines

  1. /*
  2.     Terminal 2.2
  3.     "ZOptions.c"
  4. */
  5.  
  6. #ifdef THINK_C
  7. #include "MacHeaders"
  8. #endif
  9. #ifdef applec
  10. #pragma load ":(Objects):MacHeadersMPW"
  11. #pragma segment Options
  12. #endif
  13.  
  14. #include "Options.h"
  15. #include "Strings.h"
  16. #include "Utilities.h"
  17. #include "Text.h"
  18. #include "Main.h"
  19. #include "Procedure.h"
  20.  
  21. #define B_OK        1        /* OK button */
  22. #define B_CANCEL    2        /* Cancel button */
  23. #define C_ESCCTL    3        /* Escape control characters check box */
  24. #define E_TIMEOUT    4        /* Receive timeout */
  25. #define E_RETRIES    5        /* Max receive retries */
  26. #define E_BUFFER    6        /* Receive buffer size */
  27. #define E_PACKET    7        /* Transmit sub-packet length */
  28. #define E_WINDOW    8        /* Transmit window */
  29. #define E_ZCRCQ        9        /* Transmit ZCRCQ spacing */
  30. #define U_TITLELINE    10        /* Underline */
  31. #define T_RECEIVE    11        /* Receive frame */
  32. #define U_RECEIVE    12
  33. #define T_TRANSMIT    13        /* Transmit frame */
  34. #define U_TRANSMIT    14
  35.  
  36. /* ----- Verify entry value -------------------------------------------- */
  37.  
  38. static Boolean Verify(
  39.     register DialogPtr dialog,
  40.     register short number,
  41.     register long *value,
  42.     register long min,
  43.     register long max)
  44. {
  45.     register Byte str[256];
  46.  
  47.     GetEText(dialog, number, str);
  48.     StringToNum(str, value);
  49.     if (*value < min || *value > max) {
  50.         SysBeep(1);
  51.         SelIText(dialog, number, 0, 32767);
  52.         return TRUE;
  53.     }
  54.     return FALSE;
  55. }
  56.  
  57. /* ----- Z-Modem options dialog ---------------------------------------- */
  58.  
  59. void ZOptions(void)
  60. {
  61.     register DialogPtr dialog;
  62.     register Byte str[256];
  63.     short number;
  64.     long timeout, buffer, retries, packet, window, zcrcq;
  65.  
  66.     CenterDialog('DLOG', DLOG_ZMODEM);
  67.     if (!(dialog = GetNewDialog(DLOG_ZMODEM, 0, (WindowPtr)-1L)))
  68.         return;
  69.     SetUserItem(dialog, U_TITLELINE, (ProcPtr)DrawUserLine);
  70.     SetUserItem(dialog, U_RECEIVE, (ProcPtr)DrawUserFrame);
  71.     SetUserItem(dialog, U_TRANSMIT, (ProcPtr)DrawUserFrame);
  72.     SetCheck(dialog, C_ESCCTL, Settings.ZEscapeCtl);
  73.     NumToString(Settings.ZTimeout / 60, str);
  74.         SetEText(dialog, E_TIMEOUT, str);
  75.     NumToString(Settings.ZBuffer, str);
  76.         SetEText(dialog, E_BUFFER, str);
  77.     NumToString(Settings.ZRetries, str);
  78.         SetEText(dialog, E_RETRIES, str);
  79.     NumToString(Settings.ZPacket, str);
  80.         SetEText(dialog, E_PACKET, str);
  81.     NumToString(Settings.ZWindow, str);
  82.         SetEText(dialog, E_WINDOW, str);
  83.     NumToString(Settings.Zcrcq, str);
  84.         SetEText(dialog, E_ZCRCQ, str);
  85.     ShowWindow(dialog);
  86.     for (;;) {
  87.         ModalDialog(0, &number);
  88.         switch(number) {
  89.             case B_OK:
  90.                     if (Verify(dialog, E_TIMEOUT, &timeout, 0, 35791394) ||
  91.                         Verify(dialog, E_BUFFER, &buffer, 0, 0x7FFF) ||
  92.                         Verify(dialog, E_RETRIES, &retries, 3, 30) ||
  93.                         Verify(dialog, E_PACKET, &packet, 128, 1024) ||
  94.                         Verify(dialog, E_WINDOW, &window, 0, 0x7FFF) ||
  95.                         Verify(dialog, E_ZCRCQ, &zcrcq, 0, 0x7FFF))
  96.                         break;
  97.                     ZModemSetup(
  98.                         GetCheck(dialog, C_ESCCTL),
  99.                         timeout * 60,
  100.                         retries,
  101.                         buffer,
  102.                         packet,
  103.                         window,
  104.                         zcrcq);
  105.             case B_CANCEL:
  106.                 DisposDialog(dialog);
  107.                 return;
  108.             case C_ESCCTL:
  109.                 ToggleCheckBox(dialog, number);
  110.                 break;
  111.         }
  112.     }
  113. }
  114.